home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 60265 / 60265.xpi / chrome / content / checkVersion.js next >
Text File  |  2010-02-11  |  3KB  |  77 lines

  1. /*
  2.     Saved Password Editor, extension for Firefox 3.0+
  3.     Copyright (C) 2010  Daniel Dawson <ddawson@icehouse.net>
  4.  
  5.     This program is free software: you can redistribute it and/or modify
  6.     it under the terms of the GNU General Public License as published by
  7.     the Free Software Foundation, either version 3 of the License, or
  8.     (at your option) any later version.
  9.  
  10.     This program is distributed in the hope that it will be useful,
  11.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.     GNU General Public License for more details.
  14.  
  15.     You should have received a copy of the GNU General Public License
  16.     along with this program.  If not, see <http://www.gnu.org/licenses/>.
  17. */
  18.  
  19. {
  20.   let checkVersion = function () {
  21.     const PREFNAME = "currentVersion",
  22.             THISVERSION = "1.1",
  23.             COMPAREVERSION = "1.0",
  24.             Cc = Components.classes, Ci = Components.interfaces;
  25.     var prefs = Cc["@mozilla.org/preferences-service;1"].
  26.                   getService(Ci.nsIPrefService).
  27.                   getBranch("extensions.savedpasswordeditor.");
  28.  
  29.     function isOlder (version, compareTo) {
  30.       var vAnalysis = version.split(".");
  31.       var ctAnalysis = compareTo.split(".");
  32.  
  33.       for (let i = 0; i < ctAnalysis.length; i++) {
  34.         if (i == vAnalysis.length) return true;
  35.         var vNum = Number(vAnalysis[i]), ctNum = Number(ctAnalysis[i]);
  36.         if (isNaN(vNum) || i >= ctAnalysis.length || vNum < ctNum) {
  37.           return true;
  38.         }
  39.         if (vNum > ctNum)  // Was a newer version?? Not going to deal with it!
  40.           break;
  41.       }
  42.       return false;
  43.     }
  44.  
  45.     function welcome () {
  46.       if (Application.id == "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}") {
  47.         // Firefox
  48.         var url = "chrome://savedpasswordeditor/content/welcome_fx.xhtml";
  49.       } else {
  50.         // SeaMonkey
  51.         var url = "chrome://savedpasswordeditor/content/welcome_sm.xhtml";
  52.       }
  53.  
  54.       gBrowser.selectedTab = gBrowser.addTab(url);
  55.     }
  56.  
  57.     if (prefs.prefHasUserValue(PREFNAME)) {
  58.       var lastVersion = prefs.getCharPref(PREFNAME);
  59.       if (isOlder(lastVersion, COMPAREVERSION))
  60.         welcome();
  61.       if (isOlder(lastVersion, THISVERSION))
  62.         prefs.setCharPref(PREFNAME, THISVERSION);
  63.     } else {
  64.       welcome();
  65.       prefs.setCharPref(PREFNAME, THISVERSION);
  66.     }
  67.   };
  68.  
  69.   window.addEventListener(
  70.     "load",
  71.     function loadHandler (ev) {
  72.       window.setTimeout(checkVersion, 1500);
  73.       window.removeEventListener("load", loadHandler, false);
  74.     },
  75.     false);
  76. }
  77.